ECCV18|人脸对齐与跟踪如何克服遮挡、姿态变化带来的特征点跳变?
(欢迎关注“我爱计算机视觉”公众号,一个有价值有深度的公众号~)
人脸对齐与特征点跟踪的过程中,遮挡和大的姿态变化是无可避免的,在跟踪过程中这往往带来特征点的跳变,影响用户体验。
来自ECCV2018的论文《A Deeply-initialized Coarse-to-fine Ensemble of Regression Trees for Face Alignment》试图去解决这样的问题。
作者认为,出现人脸特征点距离真实位置偏移过大,是因为算法初始化时的特征点不够鲁棒,于是提出一种使用深度卷积网络粗略估计特征点位置,结合3D人脸姿态估计与重投影确定特征点初始位置,然后使用经典的回归树集成(Ensemble of Regression Trees,ERT)方法提精位置。
通过深度学习+几何重投影方法初始化,结合传统特征点定位的回归模型ERT,在各个数据集上几乎都达到了最好的性能。
请看官方视频,在突然有遮挡的时候,特征点跳变明显减小。
算法思想
下图展示了算法的基本流程:
其主要可以分解为三大步骤:
1.CNN模型计算每个特征点概率图,取最大相应的位置为特征点位置;
2.计算3D人脸模型,通过POSIT计算人脸3D姿态,并将3D特征点使用计算得到的姿态矩阵重投影到人脸图像中,作为下一步的特征点提精的初始位置;
3.ERT非刚体形状估计,改进传统回归树模型由粗到细(Coarse-to-fine)迭代计算特征点位置,直至算法收敛。ERT的特征提取使用快速的FREAK像素比较二值特征。
实验结果
在各个常用数据集都达到了最好的性能。
算法得到的一些结果图示例:
通过比较52CV君之前发的文章重磅!清华&商汤开源CVPR2018超高精度人脸对齐算法LAB,LAB比该文的精度要高。可能LAB发表的时候,该文作者没有看到。
速度上,该文在NVidia GeForce GTX 1080 (8GB) GPU 与 Intel Xeon E5-1650 3.50GHz (6 cores/12 threads, 32 GB of RAM)机器上可以达到实时(32fps),比LAB要快。
比较有意思的是,该文结合深度学习方法与传统方法,将深度学习方法得到的结果用于传统方法的特征点初始化,作者认为深度学习方法得到的特征点位置更加鲁棒(不会出现错的太离谱的幺蛾子),但传统ERT方法得到的特征点位置比较精确。不知各位读者看到后有什么启发?
作者称代码将开源,工程主页:
https://bobetocalo.github.io/publication/eccv18/
更多精彩推荐:
重磅!清华&商汤开源CVPR2018超高精度人脸对齐算法LAB
(欢迎关注“我爱计算机视觉”公众号,一个有价值有深度的公众号~)
【本文由“我爱计算机视觉”发布,2018年09月07日】